構建多語言應用程式 Build multilingual-ready apps

Input 涉及使用者輸入的多語言支援

鍵盤輸入:

當 April 切換聊天時,鍵盤會記住她用什麼語言和對方交流。

1 April 住在新加坡,會講英語和中文。她和朋友 Farah 聊天時用英語。她和伴侶聊天時會用中文。

2 使用中文手寫鍵盤時,April 會拉高鍵盤方便書寫,資訊介面會隨之上移。

3 在中文、日文等輸入法中,使用者通常會先輸入拼音或假名,系統會用“標記文字”(marked text)顯示臨時內容,並在選定候選詞後才變為正式文字。

某些應用為了提供“自動補全”功能,會在使用者每次按鍵時修改輸入內容,導致正在輸入的拼音被打斷,體驗非常糟糕。

Spotlight 只會在選定候選詞後修改內容。可以在不中斷使用者輸入的情況下,提供實時建議。永遠不要在標記文字階段修改輸入內容。

搜尋輸入:本地化標準範圍技術

1 Raj 住在印度,會說印地語和英語。他用印地語搜東西時,有時會找不到結果。

因為使用者可能用羅馬化輸入法(如 "indra")輸入,系統預設選擇左邊鼻音化,右邊是正統寫法,其實是一個意思。

蘋果用技術解決了這個問題,讓這些變體能夠正確匹配。localizedStandardRange(本地化標準範圍)遵循本地語言規則的標準搜尋方式。它能識別語言中的大小寫、變音符和拼寫差異。它現在能更好地處理不同語言的拼寫和數字格式。

2 語言的特點以及渲染的問題

蘋果運用NSAttributedString技術,將以前改變字重的方式改為了用顏色來高亮輸入的內容,而不是切換字型。解決了印地語字元連線被破壞的問題。

3 斜體:有些語言本來就沒有斜體的概念,所以看不出區別。所以,使用斜體要謹慎,不同語言可能看不出差別。

支援斜體:英語(Hello)(拉丁字母)希臘語(Χαίρετε)(希臘字母)西裡爾字母(Сәлем)(俄語、哈薩克語等)

不支援斜體:阿拉伯語(مرحبًا)、印地語(नमस्ते)(天城文)、日語(こんにちは)(假名)、韓語(안녕하세요)、希伯來語(שלום)、泰語(สวัสดี)、中文(你好)

Display文字的正確呈現

Ismat 住在美國,會說英語和烏爾都語。發現大部分應用能正常顯示烏爾都語,但有時文字會破碎得看不清。

蘋果用TextKit 2技術確保所有文字都能正常顯示,文字樣式會根據使用者的語言偏好,自動最佳化不同語言的顯示效果比如行間距。

Localization將內容翻譯和本地化

1 字串的個性化和包容性提升

蘋果研發的自動語法匹配引擎技術可以根據使用者的語言和地區設定,更自然地稱呼他們!

德語、英語、西班牙語、法語、義大利語、葡萄牙語、印地語、韓語

系統會自動把 "Your" 改成 "His/Her/Their",而不用手動寫多個版本!
這張圖顯示的是一個西班牙語的食品訂單介面,主要內容是關於沙拉(Ensalada)的選擇,包括尺寸、價格和數量調整。在西班牙語中,所有名詞都有性別,Ensalada(沙拉)是陰性名詞(femenino),因此與它搭配的形容詞和詞彙也需要使用陰性形式。如果這裡的食物是Bocadillo(三明治,陽性)

在印地語中,動詞會根據性別變形,如果使用者是男性:"अगर आप पहुँच नहीं पाते हैं"如果使用者是女性:"अगर आप पहुँच नहीं पाती हैं 以前需要提供兩種不同版本的文字,現在語法引擎可以自動匹配使用者性別,動詞會正確變形!

在韓語中如果名詞以子音結尾,使用 "을",如果名詞以 母音 結尾,使用 "를",需要手動提供兩個版本然後在程式碼中寫邏輯判斷,現在語法引擎可以自動匹配自動判斷名詞的發音,正確選擇 “을” 或 “를”,讓 UI 文案更自然!

數字格式

世界上有很多不同的數字系統,並不只有阿拉伯數字。一些語言支援多種數字格式,使用者可以在 語言和地區 設定裡選擇自己喜歡的數字格式。數字會自動匹配使用者的語言習慣!

在印度、尼泊爾等國家,本地數字(如 "४४")比阿拉伯數字("44")更常見

圖示也是一樣

textformat 文字格式圖示,過去是 “Aa” 如果使用者的語言是希伯來語,它就變成了 "אא"

signature 簽名符號,英語的簽名字母類似 “Jn”,而阿拉伯語、希伯來語採用更接近本土的書寫風格。

list.number 列表圖示,英語中,數字在左,阿拉伯語中,阿拉伯數字出現在右側